package cn.itcast.service.system.impl;

import cn.itcast.dao.system.DeptDao;
import cn.itcast.domain.system.Dept;
import cn.itcast.service.system.DeptService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import utils.DeptCodeGens;

import java.util.List;

@Service
public class DeptServiceImpl implements DeptService {

 @Autowired
 private DeptDao deptDao;

 //分页查询
 public PageInfo findAll(String companyId, int page, int size) {
  //设置分页参数
  PageHelper.startPage(page, size);
  //调用dao查询
  List list = deptDao.findAll(companyId);
  //构造返回值PageInfo
  return new PageInfo(list);
 }

 //查询所有部门
 public List<Dept> findAll(String companyId) {
  return deptDao.findAll(companyId);
 }

 //保存部门
 public void save(Dept dept) {
  //获取当前保存的部门的父部门id
  String parentId = dept.getParent().getId();
  //根据父部门查询所有子部门的最大id编号
  String maxId = deptDao.findMaxId(parentId);
  //调用工具类计算下个部门的id编号
  String deptId = DeptCodeGens.getSubCode(parentId, maxId);
  //设置部门id
  dept.setId(deptId);
  //调用bao保存
  deptDao.save(dept);
 }

 //更新部门
 public void update(Dept dept) {
  deptDao.update(dept);
 }

 //根据id查询
 public Dept findById(String id) {
  return deptDao.findById(id);
 }

 //根据id删除
 public void delete(String id) {
  deptDao.delete(id);
 }
}
